package org.fjsei.yewu.bpm;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**输入型的全局流程变量: 申请单 协议 使用的。
 * 尽量减少没用变量的使用，有存储负担。
* 【全局变量】 zeebe流程图上会遗留变量取值，每一节点都可修改全局变量取值。
 * zeebe引擎当中实际的全局变量allsigned有可能存在不属于在AskForApprProcessVariables定义出来的，也不需要定义。
 * 这里不需要定义仅仅输出的一类如"pren"变量，也能出UserTask提取这里没定义的zeebe变量。
 * */

@Getter
@Setter
@Builder(toBuilder=true)
public class AskForApprProcessVariables {
    //前面4个是通用的全局变量名字。 每个流程Process都应当具备基本4个变量，方便前端查询显示在一起，这样"待办事项"页面统一的字段。
    /**本流程实例实际针对挂接的 申请单或报告的 主题标识： 汉语描述；
     * */
    private String  topic;
    /**前端给用户的跳转URL页面，具体操作实际在转入页面
     * 相对路径 :8371/  端口号前面都不要
     * */
    private String  uri;
    /**挂接的申请单或报告的GlobalID*/
    private String  ent;
    /**每个UserTask环节可以留下一句话给下面流程转接去的UserTask节点处理人:
     * 说明理由，否决原因。
     * */
    private String  say;


    /**创建者：申请单主人， 发起人
     * 协议申请单创建者，检验客户 ： ？若窗口人员代为编制申请的？
     * */
    private String  author;

    /**待选的多个窗口人员
     * 大厅客服多人 :有‘窗口协议受理’权限的人都 接待可以接通某一个人。
     * */
    private List<String>  ispMens;
    /*多人抢单结果*/
//    private List<String>  allsigned;   //zeebe自己生成的全局变量，不需要定义也可以。

    /**窗口受理人=promoter。
     * */
    private String  promoter;   // reviewer;

    /**审批人，最终的审批人。
     * 协议申请单：=协议书的审核人。
     * */
    private String  auditor;

    /**第四个人啊。
     * 协议的任务负责人：=协议书的前期任务预生成和费用计算以及协议签署之后后期的协议执行完成与否的主办责任人员。
     * */
    private String  dispatcher;

    /*GateWay 附加的判定==case when；具体规定zeebe和java具体接口需共同定义。
     * 附加的选择：（1）协议协商流程 ： 是否需要进入收费重新计算环节的。
     * */
    //    private String  addon;   //subitem;
}

